1. Field of the Invention
This invention relates generally to data processing systems and, in particular, to systems that encode data for error correction and modulation purposes.
2. Background Information
Before data are transmitted over a communications channel to a receiver or a data storage device, the data are typically encoded twice, once to allow error detection and/or correction and then again for signal modulation purposes. The error correction/detection encoding manipulates the data in accordance with a distance d error correction code (ECC), to produce data code words that include the data and associated redundancy information. The modulation encoding encodes sequences of data and redundancy information into longer modulation code sequences that meet desired run lengths and so forth. The modulation encoding promotes recovery of the respective bits and/or symbols that comprise the data and redundancy information from the transmitted or stored signals essentially by ensuring that transitions between various signal levels occur at least every predetermined numbers of bits.
To decode the data and associated redundancy information from received or retrieved signals, the decoder uses the modulation code to recover the bit sequences. The system then groups the bits into symbols or sequences of appropriate lengths, to reproduce the data code words. The system next decodes the data code words using the ECC to produce, if possible, error-free data.
The modulation code decoding includes in the decoded bit sequences errors induced by the communications channel, over which the bit sequences are transmitted to and from storage media or to a receiver. The decoding itself also introduces further errors associated with the misinterpretation of the bits of the various modulation code sequences. The errors introduced into the bit sequences by the decoding process are commonly referred to as “propagation errors.” The propagation errors may affect multiple symbols that are included in the same or in multiple data code words, which may, in turn, result in uncorrectable errors in the data. Accordingly, more powerful error correction is required to protect against the propagation errors. The system must thus include more redundancy in the transmitted or stored information, and consequently fewer data symbols may be transmitted within a given time and/or stored within a given space. Further, the system must be made more complex to operate with the more powerful error correction codes and/or techniques.